Once you get used to Powershell, you will want to do more and more with it. One of the keys to leveraging the power of PowerShell is filters.
PowerShell commandlets all support filters (well, most of them anyway). This means you can drill down to resulting data subsets.
If you run into commandlets that don’t support the native -filter you can always pipe to where-object (aka “where”).
In other words you can do this: get-service | Where {$_.Status -eq “Running”}
This takes the results of a generic get-service request which returns a full list of system services and pares it down to only the running services.
Change “Running” to “Stopped” and you get, obviously a list of services that are stopped.
You can also pipe the service name into the get-service commandlet: “W32Time” | get-service
Here’s a great chart I found on the MSDN Blogs that describes what each filter operator does:
Logical Operator | Description | Equivalent LDAP operator/expression |
-eq | Equal to. This will not support wild card search. | = |
-ne | Not equal to. This will not support wild card search. | ! x = y |
-like | Similar to -eq and supports wildcard comparison. The only wildcard character supported is: * | = |
-notlike | Not like. Supports wild card comparison. | ! x = y |
-approx | Approximately equal to | ~= |
-le | Lexicographically less than or equal to | <= |
-lt | Lexicographically less than | ! x >= y |
-ge | Lexicographically greater than or equal to | >= |
-gt | Lexicographically greater than | ! x <= y |
-and | AND | & |
-or | OR | | |
-not | NOT | ! |
-bor | Bitwise OR | :1.2.840.113556.1.4.804:= |
-band | Bitwise AND | :1.2.840.113556.1.4.803:= |
-recursivematch | Uses LDAP_MATCHING_RULE_IN_CHAIN (Win2k3 SP2 and above) | :1.2.840.113556.1.4.1941:= |
Using filters is extremely helpful is narrowing down the scope to fine-tune the data you need to work with and this chart is one I frequently reference.
Recent Comments